<?php
require_once("XmlControls.php");

class XmlAvanzamenti extends XmlControls{
	
	static $instance;
	
	private function __construct() {
		
	}

	static function getInstance(){
		
		if(self::$instance == NULL){
			
			self::$instance = new XmlAvanzamenti();
		}
		
		return self::$instance;
	}

	final public function GetData($conn,$cig,$num_progr,$num_progr_scheda,$tipo_invio=null) {
  //SOVRASCRIVO IL NUM_PROGR_SCHEDA PER ASSOCIARE CORRETTAMENTE I MSG DI ERRORE
  $_SESSION['XML__NUM_PROGR_SCHEDA']=$num_progr_scheda;
  
  //GESTIONE INVIO DI SCHEDE MULTIPLE (VERIFICA NUMERO DI SCHEDE INVIABILI E SEQUENZA)
  if($tipo_invio!=null){
   $query_multi="SELECT NUM_PROGR_SCHEDA FROM AVANZAMENTO WHERE CIG='".$cig."' AND SCHEDA_CHIUSA IN ('N') 
                 AND ARCHIVIATA !='S' AND NUM_PROGR='".$num_progr."' ORDER BY NUM_PROGR_SCHEDA";
   $ret=$conn->doquery_oracle_import($query_multi, "select");
   $num_progr_scheda_limit=$ret[1][1];

  }

		$query = "SELECT ID, CIG, NUM_PROGR, STATO_AVANZAMENTO, DENOMINAZIONE_AVANZAMENTO, MODALITA_PAGAMENTO_ID , ANTICIPAZIONI ,
							DATA_PAGAMENTO, DATA_AVANZAMENTO, IMPORTO_SAL, DATA_EMISSIONE_PAGAMENTO, IMPORTO_PAGAMENTO , AVANZAMENTO_RAGGIUNTO_ID , 
							SCOSTAMENTO, PROROGA , SCHEDA_CHIUSA, UTENTE_ID , DATA_CHIUSURA , DATA_SCADENZA_INVIO, NUM_PROGR_SCHEDA,ID_SIMOG 
							FROM AVANZAMENTO WHERE CIG='".$cig."' AND SCHEDA_CHIUSA IN ('S') AND ARCHIVIATA !='S' AND NUM_PROGR='".$num_progr."'";
       
		
		if ($num_progr_scheda!="" AND $tipo_invio == null){
			$query.=" AND NUM_PROGR_SCHEDA='".$num_progr_scheda."'";
		}
		
		if($tipo_invio!=null){
		
   if($num_progr_scheda_limit!=""){
    $query.=" AND NUM_PROGR_SCHEDA < ".$num_progr_scheda_limit;
   }
   
   $query.=" ORDER BY NUM_PROGR_SCHEDA";
  }

		$rs=$conn->doquery_oracle_import($query, "select");
		
		$rs_data=array();
		$i=0;
		foreach($rs as $data){
			
			$rs_data[$i]["ID"]=$data["1"];
			$rs_data[$i]["CIG"]=$data["2"];
			$rs_data[$i]["NUM_PROGR"]=$data["3"];
			$rs_data[$i]["STATO_AVANZAMENTO"]=$data["4"];
			$rs_data[$i]["DENOMINAZIONE_AVANZAMENTO"]=$data["5"];
   $rs_data[$i]["MODALITA_PAGAMENTO_ID"]=$data["6"];
			$rs_data[$i]["ANTICIPAZIONI"]=$data["7"];
			$rs_data[$i]["DATA_PAGAMENTO"]=$data["8"]; //
			$rs_data[$i]["DATA_AVANZAMENTO"]=$data["9"];//
			$rs_data[$i]["IMPORTO_SAL"]=$data["10"];
			$rs_data[$i]["DATA_EMISSIONE_PAGAMENTO"]=$data["11"];//
			$rs_data[$i]["IMPORTO_PAGAMENTO"]=$data["12"];
			$rs_data[$i]["AVANZAMENTO_RAGGIUNTO_ID"]=$data["13"];
			$rs_data[$i]["SCOSTAMENTO"]=$data["14"];
			$rs_data[$i]["PROROGA"]=$data["15"];
			$rs_data[$i]["SCHEDA_CHIUSA"]=$data["16"];
			$rs_data[$i]["UTENTE_ID"]=$data["17"];
			$rs_data[$i]["DATA_CHIUSURA"]=$data["18"];
			$rs_data[$i]["DATA_SCADENZA_INVIO"]=$data["19"];
			$rs_data[$i]["NUM_PROGR_SCHEDA"]=$data["20"];
			$rs_data[$i]["ID_SIMOG"]=$data["21"];
			
			$i=$i+1;
		}
		
		return $rs_data;		
		
	}
	
	final public function CreateXml($rs,$conn) {
				
    /*
		echo "<pre>";
		print_r($rs);
		echo "</pre>";
		exit;
    */

		$xml.='<DatiAvanzamenti>';
		$rs_data[1]=$rs["data"];

		foreach($rs_data as $record_key  => $record_value){

		 foreach($record_value as $record){
			 /*
			 DATA_PAGAMENTO
DATA_AVANZAMENTO
DATA_EMISSIONE_PAGAMENTO


$rs_data[$i]["DATA_PAGAMENTO"]=$data["8"]; //
$rs_data[$i]["DATA_AVANZAMENTO"]=$data["9"];//
$rs_data[$i]["DATA_EMISSIONE_PAGAMENTO"]=$data["11"];//
*/

   //SOVRASCRIVO IL NUM_PROGR_SCHEDA PER ASSOCIARE CORRETTAMENTE I MSG DI ERRORE
   $_SESSION['XML__NUM_PROGR_SCHEDA']=$record["NUM_PROGR_SCHEDA"];
   
			$FLAG_PAGAMENTO=$this->WorkPagamento($record["MODALITA_PAGAMENTO_ID"]);	 												//presenza A* - V*
			//$DATA_ANTICIPAZIONE=$this->WorkData("DATA_ANTICIPAZIONE",$record["DATA_EMISSIONE_PAGAMENTO"]);	//presenza A - V
			$DATA_ANTICIPAZIONE=$this->WorkData("DATA_ANTICIPAZIONE",$record["DATA_PAGAMENTO"]);	//presenza A - V
			$IMPORTO_ANTICIPAZIONE=$this->WorkImporto("IMPORTO_ANTICIPAZIONE",$record["ANTICIPAZIONI"]);	  //presenza A - V
			$DATA_RAGGIUNGIMENTO=$this->WorkData("DATA_RAGGIUNGIMENTO",$record["DATA_AVANZAMENTO"],"Y");		//presenza A* - V*
			$IMPORTO_SAL=$this->WorkImporto("IMPORTO_SAL",$record["IMPORTO_SAL"],"Y");											//presenza A* - V*
			//$DATA_CERTIFICATO=$this->WorkData("DATA_CERTIFICATO",$record["DATA_PAGAMENTO"]);								//presenza A - V
			$DATA_CERTIFICATO=$this->WorkData("DATA_CERTIFICATO",$record["DATA_EMISSIONE_PAGAMENTO"]);								//presenza A - V
			$IMPORTO_CERTIFICATO=$this->WorkImporto("IMPORTO_CERTIFICATO",$record["IMPORTO_PAGAMENTO"]);		//presenza A - V
			$FLAG_RITARDO=$this->WorkFlagRitardoType("FLAG_RITARDO",$record["AVANZAMENTO_RAGGIUNTO_ID"],$conn);//presenza A* - V*
			
			//MOD_AUTH  $NUM_GIORNI_SCOST=$this->WorkIntero5("NUM_GIORNI_SCOST",$record["SCOSTAMENTO"],"Y");						//presenza A* - V
			$NUM_GIORNI_SCOST=$this->WorkIntero5("NUM_GIORNI_SCOST",$record["SCOSTAMENTO"]);			
			
			
			//MOD_AUTH  $NUM_GIORNI_PROROGA=$this->WorkIntero5("NUM_GIORNI_PROROGA",$record["PROROGA"],"Y");						//presenza A* - V
			$NUM_GIORNI_PROROGA=$this->WorkIntero5("NUM_GIORNI_PROROGA",$record["PROROGA"]);					
			
			$DENOM_AVANZAMENTO=$this->WorkStringa("DENOM_AVANZAMENTO",$record["DENOMINAZIONE_AVANZAMENTO"],"250");
			$ID_SCHEDA_LOCALE=$this->WorkNumero("ID_SCHEDA_LOCALE",$record["ID"]);
			$ID_SCHEDA_SIMOG=$this->WorkNumero("ID_SCHEDA_SIMOG",$record["ID_SIMOG"]); 
			
			//MOD_AUTH  $xml.='<Avanzamento tns:FLAG_PAGAMENTO="'.$FLAG_PAGAMENTO.'" tns:DATA_RAGGIUNGIMENTO="'.$DATA_RAGGIUNGIMENTO.'" tns:IMPORTO_SAL="'.$IMPORTO_SAL.'" tns:FLAG_RITARDO="'.$FLAG_RITARDO.'" tns:NUM_GIORNI_SCOST="'.$NUM_GIORNI_SCOST.'" tns:NUM_GIORNI_PROROGA="'.$NUM_GIORNI_PROROGA.'"';
			$xml.='<Avanzamento tns:FLAG_PAGAMENTO="'.$FLAG_PAGAMENTO.'" tns:DATA_RAGGIUNGIMENTO="'.$DATA_RAGGIUNGIMENTO.'" tns:IMPORTO_SAL="'.$IMPORTO_SAL.'" tns:FLAG_RITARDO="'.$FLAG_RITARDO.'" ';
			
			//tns:NUM_GIORNI_SCOST="'.$NUM_GIORNI_SCOST.'" tns:NUM_GIORNI_PROROGA="'.$NUM_GIORNI_PROROGA.'"';
			if($NUM_GIORNI_SCOST!=''){
				$xml.=' tns:NUM_GIORNI_SCOST="'.$NUM_GIORNI_SCOST.'"';
			}
			if($NUM_GIORNI_PROROGA!=''){
				$xml.=' tns:NUM_GIORNI_PROROGA="'.$NUM_GIORNI_PROROGA.'"';
			}
			

			if($DATA_ANTICIPAZIONE!=''){
				$xml.=' tns:DATA_ANTICIPAZIONE="'.$DATA_ANTICIPAZIONE.'"';
			}
			if($IMPORTO_ANTICIPAZIONE!=''){
				$xml.=' tns:IMPORTO_ANTICIPAZIONE="'.$IMPORTO_ANTICIPAZIONE.'"';
			}
			if($DATA_CERTIFICATO!=''){
				$xml.=' tns:DATA_CERTIFICATO="'.$DATA_CERTIFICATO.'"';
			}
			if($IMPORTO_CERTIFICATO!=''){
				$xml.=' tns:IMPORTO_CERTIFICATO="'.$IMPORTO_CERTIFICATO.'"';
			}
			if($DENOM_AVANZAMENTO!=''){
				$xml.=' tns:DENOM_AVANZAMENTO="'.$DENOM_AVANZAMENTO.'"';
			}
			/*if ($ID_SCHEDA_LOCALE!=''){
				$xml.=' tns:ID_SCHEDA_LOCALE="'.$ID_SCHEDA_LOCALE.'"';
			}
			if ($ID_SCHEDA_SIMOG!=''){
				$xml.=' tns:ID_SCHEDA_SIMOG="'.$ID_SCHEDA_SIMOG.'"';
			}*/
			/*if ($ID_SCHEDA_SIMOG!='')
			{
				$xml.=' tns:ID_SCHEDA_SIMOG="'.$ID_SCHEDA_SIMOG.'"';
			}
			else
			{		  
			   $query_data_DC ="SELECT  ID_SIMOG FROM DATI_COMUNI WHERE CIG='".$record["CIG"]."' AND NUM_PROGR='".$record["NUM_PROGR"]."'";
               $rsDC=$conn->doquery_oracle_import($query_data_DC, "select");
			  if($rsDC[1][1]=="")
			  {
                if ($ID_SCHEDA_LOCALE!='')
                {
			      $xml.=' tns:ID_SCHEDA_LOCALE="'.$ID_SCHEDA_LOCALE.'"';
			    }
		      }
		    }*/
		    $xml.=' tns:ID_SCHEDA_LOCALE="'.$ID_SCHEDA_LOCALE.'"';			
      																				
			$xml.='/>';
						
		 }
		 
    }
    
		$xml.='</DatiAvanzamenti>';
		 
		return $xml;

	}

}
?>